前言 RPC 框架是后端攻城狮永远都绕不开的知识点,目前业界比较知名有 Dubbo、Spring Cloud 等。很多人都停留在了只会用的阶段,作为程序猿,拥有好奇心深入学习,才能有效提高自己的竞争 ...
前言 RPC 框架是后端攻城狮永远都绕不开的知识点,目前业界比较知名有 Dubbo、Spring Cloud 等。很多人都停留在了只会用的阶段,作为程序猿,拥有好奇心深入学习,才能有效提高自己的竞争 ...
一、心跳 什么是心跳 在 TPC 中,客户端和服务端建立连接之后,需要定期发送数据包,来通知对方自己还在线,以确保 TPC 连接的有效性。如果一个连接长时间没有心跳,需要及时断开,否则服务端会维护 ...
我们在接下来会开始讲网络通信相关的内容了。既然是网络通信,那必然会涉及到序列化的相关技术。 下面是 ccx-rpc 序列化器的接口定义。 接口只包含序列化、反序列化两个最基础的方法。不同的序列 ...
当 RPC 框架使用 Netty 通信时,实际上是将数据转化成 ByteBuf 的方式进行传输。 那如何转化呢?可不可以把 请求参数 或者 响应结果 直接无脑序列化成 byte 数组发出去? 答:直接 ...
RPC 中服务消费端(Consumer) 需要请求服务提供方(Provider)的接口,必须要知道 Provider 的地址才能请求到。 那么,Consumer 要从哪里获取 Provider 的地址 ...
网络通信的开发,就涉及到一些开发框架:Java NIO、Netty、Mina 等等。 理论上来说,类似于序列化器,可以为其定义一套统一的接口,让不同类型的框架实现,事实上,Dubbo 就是这么干的。 ...
Netty 在服务端与客户端的网络通信中,使用的是异步双向通信(双工)的方式,即客户端和服务端可以相互主动发请求给对方,发消息后不会同步等响应。这样就会有一下问题: 如何识别消息是请求还是响应 ...
RPC 框架有很多可扩展的地方,如:序列化类型、压缩类型、负载均衡类型、注册中心类型等等。 假设框架提供的注册中心只有zookeeper,但是使用者想用Eureka,修改框架以支持使用者的需求显然不是 ...
URL 的定义 URL 对于大部分程序猿来说都是很熟悉的,其全称是 Uniform Resource Locator (统一资源定位器)。它是互联网的统一资源定位标志,也就是指网络地址。 一个标准 ...